package com.lbd.project.service;

import com.lbd.base.service.BaseService;
import com.lbd.project.bean.TargetInfo;
import com.lbd.project.controller.vo.TargetVo;
import org.springframework.data.domain.Page;

import java.util.Map;

/**
 * Created by Yuanbo on 2016/9/29.
 */
public interface TargetService extends BaseService<TargetInfo> {

    /**
     * 借款中的项目列表
     *
     * @param page     页码
     * @param rows     行数
     * @param targetVo 标的类
     * @return 分页后的借款列表
     */
    Page<Map> findLoansList(int page, int rows, TargetVo targetVo);

    /**
     * 获取某个标的的投资情况
     *
     * @param page     页码
     * @param rows     行数
     * @param targetId 标的id
     * @return 投资列表
     */
    Page<Map> findInvestByTargetId(int page, int rows, String targetId);

    /**
     * 投资情况中的-某笔投资的总投资人数,总投资金额
     *
     * @param targetId 标的id
     * @return 投资总人数\总金额
     */
    String totalInvest(String targetId);

    /**
     * 贷前中理-流标中的项目列表
     *
     * @param page     页码
     * @param rows     行数
     * @param targetVo 筛选条件
     * @return 流标中的项目列表
     */
    Page findBidderList(int page, int rows, TargetVo targetVo);

    /**
     * 更新审核后的标的信息
     *
     * @param targetId    标的id
     * @param auditStatus 审核状态
     * @param suggestion  审核意见
     * @param mjStart     募集开始时间
     * @param rzqx        融资期限
     * @return 审核后的标的信息
     */
    TargetInfo updateAuditMsg(String targetId, String auditStatus, String suggestion, String mjStart, String rzqx);

    /**
     * 删除风控信息图片
     *
     * @param targetId    标的id
     * @param fileContent 文件保存路径
     */
    void removeProPic(String targetId, String fileContent);

    /**
     * 更新风控信息图片
     *
     * @param targetId    标的id
     * @param fileContent 文件保存路径
     * @param oType       文件类型
     */
    void updateProPic(String targetId, String fileContent, String oType);

    /**
     * 更新标的信息
     *
     * @param targetVo 要更新的字段
     */
    void updateTargetMsg(TargetVo targetVo);

    Page findFullScaleList(int page, int rows, TargetVo targetVo);

    void fullScaleLoan(String targetId) throws Exception;
}
